2010-05-12 ver 1.8 kingshriek

    * mesrebuild.py
        -added support for proportional fonts in the text-wrapping routine
         (using a width table)
        -fixed bug in custom text-wrapping routine where words longer than
         the width limit weren't being handle properly.
        -retired mstvoice.py, built functionality into mesrebuild.py

    * mstvoice.py
        -removed file, functionality built into mesrebuild.py

2010-03-18 ver 1.7 kingshriek

    * mesrebuild.py
        -fixed a bug in the page-wrapping routine where it sometimes
         wouldn't trigger a new page at the correct time
        -added a second NVL mode with one less line

2010-01-11 ver 1.6 kingshriek

    * mesrebuild.py
        -fixed a corner case in the word-wrapping where a newline after a
         full line ending in a double-width character was showing up an
         extra line below where it should be
        -added warning for a situation where word-wrapping may fail
        -added append directive to explicitly turn on/off detection of
         appended text
        -consolidated all substitutions into messubs.py file

2009-12-05 ver 1.5 kingshriek

    * mesrebuild.py
        -modified append_text function to insert space between alphanumeric
         characters between appended lines
        -changed new page commands for demo scripts to use a consistent wait
         value
        -changed the script to return an error value in "make" mode when no
         files need to be updated
    * mstvoice.py
        -changed so that when file is detected to be already voice patched,
         it is not updated

2009-11-24 ver 1.4 kingshriek

    * mesrebuild.py
        -modified appended text punctuation handling so that it does not
         insert a space between consecutive ellipsis marks
        -changed ellipsis transformation to a just a general additional
         modifications function - added Japanese->English parentheses
         conversion
        -added configuration switches for substitution dictionary and
         application of additional modifications
        -changed script so that when a syntax error occurs in the scripts, 
         processing is stopped instead of continuing on dumbly


2009-11-09 ver 1.3 kingshriek

    * mesrebuild.py
        -added a few more cases for appended text check
        -changed it so that a space is inserted for appended text only
         after punctuation
        -changed word-wrapping width from 53 to 52
        -added conversion of Japanese ellipses to English ones

2009-10-26 ver 1.2 kingshriek

    * mesrebuild.py
        -added make functionality (only rebuild files that aren't up-to-date)
        -added SYS mode directive to explicitly turn off word-wrapping
        -added ERO mode directive to properly page-wrap ero scenes
        -added DEM mode directive to properly page-wrap demo mode

2009-10-24 ver 1.1 kingshriek

    * mesrebuild.py
        -rewrote parts of the word-wrapping code so now it works much better
         with NVL mode text. Other than adding directives in the .MSD files
         to indicate ADV or NVL mode, no other changes should be necssary.

2009-10-20 ver 1.0 kingshriek

    * mesrebuild.py
        -added partial support for word-wrapping in the NVL parts (using
         the #mode directive in .MSD files). still needs a lot of help
         (modification of MSD files) at the moment to work properly
        -added "blue text" command to the list of commands that are used to
         to detect appended text. this is done to handle the tutorial text.
         dubious, yes, but it works

2009-10-11 ver 0.9 kingshriek

    * mesrebuild.py
        -fixed a bug in the sanity check routine that broke on lines
         consisting only of a label
        -separated out global substitution dictionary into a separate file
         (messubs.py)

    * mstvoice.py
        -changed behavior so that same input and output directory is allowed
        -added in a simple check to see if a voice patch has already been
         made to avoid double-patching

2009-10-06 ver 0.8 kingshriek

    * mesdump.py
        -fixed a major bug where text from two consecutive text commands were
         accidently begin concatenated. this is a major problem when there's
         supposed to be a label attached to the second one! this affected 7
         scripts (29_02.MES, D29_01.MES, D_A17.MES, D_A17_07.MES, D_C17.MES,
         D_C17_01.MES, MENU.MES)

    * mesrebuild.py
        -now uses a random string of letters for the temporary protag name
         replacement (used to make it the maximum length for word-wrapping).
         previously used a string of repeated '@' characters, but this is a
         problem when a two-byte shift-jis character has 0x40 ('@') as the
         last byte
        -changed newline escape from \n to \newline. escapes are substituted
         as bytes, not text, so I want to avoid potential shift-jis collision
        -changed behavior to look at .MST files inside a directory instead
         of .MSDs
        -added syntax check for invalid opcodes

    confirmed that a chain of mesdump.py-->mesrebuild.py produces identical
    md5 checksums with the original files.

2009-10-04 ver 0.7 kingshriek

    * mesrebuild.py
        -dealt with appended text in word-wrapping code

    * mstvoice.py
        -changed sequential id check so that it's not strictly increasing

2009-10-03 ver 0.6 kingshriek

    * mesrebuild.py
        -added support for a global substitution dictionary
        -line numbers in exception messages were 1 off - fixed that

2009-10-02 ver 0.5 kingshriek

    * mesdump.py
        -added options --file,--regex for processing specific files
        -added option --half-recurse to leave output directory flat when
         recursing through input subdirectories

    * mesrebuild.py
        -added options --file,--regex for processing specific files
        -added option --half-recurse to leave output directory flat when
         recursing through input subdirectories
        -added option --opt to additionally process lines beginning with @
         (they are ignored otherwise).
        -throw an exception if text command lacks text string argument
        -throw an exception if only one quote character detected on a line
         (unmatched quotes) in a text command
        -throw an exception if in a text command, line does not begin and 
         end with a quote character
        -throw an exception if page block identifiers in .MST file do not
         match up

    * mstvoice.py
        -initial release

2009-09-30 ver 0.4 kingshriek

    * mesrebuild.py
        -filled in missing values for east_asian_width() that caused the
         word-wrapping to break
        -added proper new-lines to the word-wrapping code. no more padding
         with spaces. now works with user-defined protag name

2009-09-29 ver 0.3 kingshriek

    * mesdump.py
        -fixed bug in output directory creation for --recurse option
        -changed 'shift-jis' encoding to 'cp932' (probably more appropriate)
        -separated output into two files - .MSD (script commands) and .MST
         (text)

    * mesrebuild.py
        -fixed bug in output directory creation for --recurse option
        -changed 'shift-jis' encoding to 'cp932' (probably more appropriate)
        -separated input into two files - .MSD (script commands) and .MST
         (text)
        -changed word-wrapping to support double-width characters

2009-09-25 ver 0.2 kingshriek

    * mesrebuild.py
        -fixed an incorrect byte in wcmd2 that broke repaginating
        -fixed variable name in wcmd3 definition (not sure how this slipped 
         by)

2009-09-24 ver 0.1 kingshriek 

    * mesdump.py
        -initial release

    * mesrebuild.py
        -initial release
